﻿using System;

public class Entity
{
    public Entity()
    {
    }

    public virtual void Update(double deltaTime)
    {
        // process affix / buff ( attach / detach / effect )  
    }

    public virtual void Attack(Entity targetEntity)
    {
    }

    // property
    public string Name
    {
        get
        {
            return m_name;
        }
        set
        {
            m_name = value;
        }
    }

    // members 
    private string m_name;

    public int m_maxHealth;
    public int m_currentHealth;
    public int m_attackPower;
    public int m_currentPosition;
    public int m_futurePosition;
}

public class Character : Entity
{
    public Character()
    {
    }

    public override void Update(double deltaTime)
    {
        // 스킬, 버프, 타임아웃, 효과 실행 
    }

    public override void Attack(Entity targetEntity)
    {
        // calc attack power 

        // calc targetEntity's depand power

        // = damage

        // select skill 
    }

    
 }

public class Monster : Entity
{
    public Monster()
    {
    }

    public override void Update(double deltaTime)
    {

    }

    public override void Attack(Entity targetEntity)
    {
    }

}


